#pragma once

#include "../platform.h"

#define HACC_CON (HACC_BASE + 0x0000)
#define HACC_ACON (HACC_BASE + 0x0004)
#define HACC_ACON2 (HACC_BASE + 0x0008)
#define HACC_ACONK (HACC_BASE + 0x000C)
#define HACC_ASRC0 (HACC_BASE + 0x0010)
#define HACC_ASRC1 (HACC_BASE + 0x0014)
#define HACC_ASRC2 (HACC_BASE + 0x0018)
#define HACC_ASRC3 (HACC_BASE + 0x001C)
#define HACC_AKEY0 (HACC_BASE + 0x0020)
#define HACC_AKEY1 (HACC_BASE + 0x0024)
#define HACC_AKEY2 (HACC_BASE + 0x0028)
#define HACC_AKEY3 (HACC_BASE + 0x002C)
#define HACC_AKEY4 (HACC_BASE + 0x0030)
#define HACC_AKEY5 (HACC_BASE + 0x0034)
#define HACC_AKEY6 (HACC_BASE + 0x0038)
#define HACC_AKEY7 (HACC_BASE + 0x003C)
#define HACC_ACFG0 (HACC_BASE + 0x0040)
#define HACC_AOUT0 (HACC_BASE + 0x0050)
#define HACC_AOUT1 (HACC_BASE + 0x0054)
#define HACC_AOUT2 (HACC_BASE + 0x0058)
#define HACC_AOUT3 (HACC_BASE + 0x005C)
#define HACC_SW_OTP0 (HACC_BASE + 0x0060)
#define HACC_SW_OTP1 (HACC_BASE + 0x0064)
#define HACC_SW_OTP2 (HACC_BASE + 0x0068)
#define HACC_SW_OTP3 (HACC_BASE + 0x006c)
#define HACC_SW_OTP4 (HACC_BASE + 0x0070)
#define HACC_SW_OTP5 (HACC_BASE + 0x0074)
#define HACC_SW_OTP6 (HACC_BASE + 0x0078)
#define HACC_SW_OTP7 (HACC_BASE + 0x007c)
#define HACC_SECINIT0 (HACC_BASE + 0x0080)
#define HACC_SECINIT1 (HACC_BASE + 0x0084)
#define HACC_SECINIT2 (HACC_BASE + 0x0088)
#define HACC_MKJ (HACC_BASE + 0x00a0)

#define HACC_AES_DEC 0x00000000
#define HACC_AES_ENC 0x00000001
#define HACC_AES_MODE_MASK 0x00000002
#define HACC_AES_ECB 0x00000000
#define HACC_AES_CBC 0x00000002
#define HACC_AES_TYPE_MASK 0x00000030
#define HACC_AES_128 0x00000000
#define HACC_AES_192 0x00000010
#define HACC_AES_256 0x00000020
#define HACC_AES_CHG_BO_MASK 0x00001000
#define HACC_AES_CHG_BO_OFF 0x00000000
#define HACC_AES_CHG_BO_ON 0x00001000
#define HACC_AES_START 0x00000001
#define HACC_AES_CLR 0x00000002
#define HACC_AES_RDY 0x00008000

#define HACC_AES_BK2C 0x00000010
#define HACC_AES_R2K 0x00000100

#define HACC_SECINIT0_MAGIC 0xAE0ACBEA
#define HACC_SECINIT1_MAGIC 0xCD957018
#define HACC_SECINIT2_MAGIC 0x46293911
